Effective computer operation requires the efficient reading and writing of data out to peripheral devices, such as storage disks. Fundamental to this read and write capability is the hardware connection that provides the physical pathway for communication with the peripheral device. Such a connection commonly comprises a fiber optic cable that couples to ports of both the computer and the peripheral device. As such, the cable comprises the communication link over which the read and write data is exchanged.
For performance and reliability considerations, computer systems have been developed that use a number of cables to connect two devices. For example, a computer may write and read: data to and from a single disk storage unit using five or more cables. In one respect, using multiple cables to connect the same computer devices bolsters reliability. In the event that should one or more of the cables become disconnected or otherwise inoperable, another connection ideally remains available. A larger number of cables also provides increased bandwidth, allowing for more efficient data exchanges.
Despite such processing and reliability advances, however, using redundant connections presents new challenges to computer performance. For example, existing systems are only configured to route data to a desired peripheral device using a single connection. The existing upper level programming of systems relies on the one-to-one relationship of a peripheral device to its respective cable connection in order to route data to the device. This is because the upper level programming sends a write/read command without regard to the connection. When writing data, for example, the upper level programs are configured only to “see” or otherwise process the address specific to the target disk unit.
With the advent of redundant connections, a computer having a number of connections to the same disk unit must account for the existence of each cable connection in order to successfully read and write data. The status of each cable, for instance, whether a cable is reporting or not, deleted, added, etc., must be known. Otherwise, failure to separately track each connection can cause data to be written or read to or from an inappropriate device. Such miscommunication will result in file corruption.
Furthermore, existing systems have relatively limited memory resources available to potentially store address, routing and other information pertaining to different communication paths. Accommodating multiple cable connections for each device must somehow not overburden available memory. Moreover, the time critical nature of computer processing requires that any routing scheme be sufficiently efficient to handle increasing workloads without delay.
Therefore, a significant need exists for an improved manner of managing connections between hardware devices and a computer system.